/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

import entidades.Solicitante;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import persistencia.Conexion;

/**
 *
 * @author Snailin
 */
public class ManejadorDeSolicitante implements Manejador {
    private Conexion conexion=null;
    private ResultSet rs=null;
    private PreparedStatement stmt=null;
    private static ManejadorDeSolicitante instancia=null;
    private ArrayList<Solicitante>solicitantes=null;
    Solicitante solicitante=null;

    public static ManejadorDeSolicitante getInstancia(){
        if(instancia==null){
        instancia=new ManejadorDeSolicitante();
        }
    return instancia;
    }

    private ManejadorDeSolicitante(){
         conexion=Conexion.getInstancia();

    }

    public ArrayList<Solicitante>getSolicitantes(){
    solicitantes=new ArrayList<Solicitante>();
       String sql="SELECT * FROM solicitante";
    stmt=(PreparedStatement) conexion.hacerEnunciado(sql);
    rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
                 solicitante=new Solicitante(rs.getInt(1), rs.getString(2),  rs.getString(3),  rs.getString(4), rs.getString(5),  rs.getString(6),  rs.getString(7),  rs.getString(8));
                solicitantes.add(solicitante);
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
        }

    return solicitantes;
    }

    public int agregar(Entidad solicitante) {
      int fila=0;
      String sql="INSERT INTO solicitante (id_solicitante, nombre, apellido, cedula, telefono, celular, sexo, direccion) VALUES(0, ?, ?, ?, ?, ?, ?, ?);";
      stmt=(PreparedStatement) conexion.hacerEnunciado(sql);
        try {
            stmt.setString(1, ((Solicitante) (solicitante)).getNombre());
            stmt.setString(2, ((Solicitante) (solicitante)).getApellido());
            stmt.setString(3, ((Solicitante) (solicitante)).getCedula());
            stmt.setString(4, ((Solicitante) (solicitante)).getTelefono());
            stmt.setString(5, ((Solicitante) (solicitante)).getCelular());
            stmt.setString(6, ((Solicitante) (solicitante)).getSexo());
            stmt.setString(7, ((Solicitante) (solicitante)).getDireccion());
            fila =stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeSolicitante.class.getName()).log(Level.SEVERE, null, ex);
        }
      return fila;
    }

    public int eliminar(int id) {
      int fila=0;
        String sql="DELETE FROM solicitante WHERE id_solicitante = ? ";
        stmt=  (PreparedStatement) conexion.hacerEnunciado(sql);
        try {
            stmt.setInt(1, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeSolicitante.class.getName()).log(Level.SEVERE, null, ex);
        }

        return fila;
    }

    public int modificar(Entidad entidad, int id) {
       int fila=0;
        String sql="UPDATE sistema de gestión de proyectos indotel.solicitante SET nombre = ? , apellido = ?, cedula = ? , telefono = ? , celular = ? , sexo = ? , direccion = ? WHERE id_solicitante = ? ;";
        stmt=(PreparedStatement) conexion.hacerEnunciado(sql);
         try {
            stmt.setString(1, ((Solicitante) (solicitante)).getNombre());
            stmt.setString(2, ((Solicitante) (solicitante)).getApellido());
            stmt.setString(3, ((Solicitante) (solicitante)).getCedula());
            stmt.setString(4, ((Solicitante) (solicitante)).getTelefono());
            stmt.setString(5, ((Solicitante) (solicitante)).getCelular());
            stmt.setString(6, ((Solicitante) (solicitante)).getSexo());
            stmt.setString(7, ((Solicitante) (solicitante)).getDireccion());
            stmt.setInt(8, id);
            fila =stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeSolicitante.class.getName()).log(Level.SEVERE, null, ex);
        }

    return fila;
    }




}
